home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / yacas_alg / yacas_morphos / share / yacas / include / standard.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-03-13  |  2.9 KB  |  82 lines

  1.  
  2. #ifndef __standard_h__
  3. #define __standard_h__
  4.  
  5. #include "yacasbase.h"
  6. #include "lispobject.h"
  7. #include "lispenvironment.h"
  8. #include "lisphash.h"
  9. #include "lispatom.h"
  10. #include "numbers.h"
  11.  
  12.  
  13. // Prototypes
  14. class LispHashTable;
  15.  
  16. LispBoolean InternalIsList(LispPtr& aPtr);
  17. LispBoolean InternalIsString(LispStringPtr aOriginal);
  18. void InternalUnstringify(LispString& aResult, LispStringPtr aOriginal);
  19. void InternalStringify(LispString& aResult, LispStringPtr aOriginal);
  20. void InternalIntToAscii(LispCharPtr aTrg,LispInt aInt);
  21. LispInt InternalAsciiToInt(LispCharPtr aString);
  22. LispBoolean IsNumber(LispCharPtr ptr,LispBoolean aAllowFloat);
  23.  
  24. void InternalNth(LispPtr& aResult, LispPtr& aArg, LispInt n);
  25. void InternalTail(LispPtr& aResult, LispPtr& aArg);
  26. void InternalAssociate(LispPtr& aResult, LispPtr& aKey,
  27.                       LispPtr& aAssociationList);
  28.  
  29. void InternalReverseList(LispPtr& aResult, LispPtr& aOriginal);
  30. void InternalFlatCopy(LispPtr& aResult, LispPtr& aOriginal);
  31. LispInt InternalListLength(LispPtr& aOriginal);
  32.  
  33. LispBoolean InternalEquals(LispEnvironment& aEnvironment,
  34.                            LispPtr& aExpression1,
  35.                            LispPtr& aExpression2);
  36.  
  37.  
  38. inline LispPtr& Argument(LispPtr& cur, LispInt n);
  39. inline void InternalTrue(LispEnvironment& aEnvironment, LispPtr& aResult);
  40. inline void InternalFalse(LispEnvironment& aEnvironment, LispPtr& aResult);
  41. inline void InternalBoolean(LispEnvironment& aEnvironment, LispPtr& aResult,
  42.                             LispBoolean aValue);
  43. inline LispBoolean IsTrue(LispEnvironment& aEnvironment, LispPtr& aExpression);
  44. inline LispBoolean IsFalse(LispEnvironment& aEnvironment, LispPtr& aExpression);
  45. inline void InternalNot(LispPtr& aResult, LispEnvironment& aEnvironment, LispPtr& aExpression);
  46.  
  47. void DoInternalLoad(LispEnvironment& aEnvironment,LispInput* aInput);
  48. void InternalLoad(LispEnvironment& aEnvironment,LispStringPtr aFileName);
  49. void InternalUse(LispEnvironment& aEnvironment,LispStringPtr aFileName);
  50. void InternalApplyString(LispEnvironment& aEnvironment, LispPtr& aResult,
  51.                          LispStringPtr aOperator,LispPtr& aArgs);
  52.  
  53. void InternalEvalString(LispEnvironment& aEnvironment, LispPtr& aResult,
  54.                         LispCharPtr aString);
  55.  
  56. LispInt StrCompare(LispCharPtr f1, LispCharPtr f2);
  57.  
  58. #define ATOML(_s) LispAtom::New(aEnvironment.HashTable().LookUp(_s))
  59. #define LIST(_c) LispSubList::New(_c)
  60. class LispObjectAdder : public YacasBase
  61. {
  62. public:
  63.     LispObjectAdder(LispObject* aPtr)
  64.         : iPtr(aPtr) {};
  65.    LispObject* iPtr;
  66. };
  67. #define LA(_o) LispObjectAdder(_o)
  68.  
  69. LispObject* operator+(const LispObjectAdder& left, const LispObjectAdder& right);
  70.  
  71. #define PARSE(_r,_s) ParseExpression(_r,_s,aEnvironment)
  72. void ParseExpression(LispPtr& aResult,LispCharPtr aString,LispEnvironment& aEnvironment);
  73.  
  74. void ReturnUnEvaluated(LispPtr& aResult,LispPtr aArguments,
  75.                        LispEnvironment& aEnvironment);
  76.  
  77.  
  78. #include "standard.inl"
  79.  
  80.  
  81. #endif
  82.